<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>81_对象结构</title>
		<script>
			/* 
			对象中存储属性的区域实际有两个:
				1.对象自身
					-直接通过对象所添加的属性，位于对象自身中
					- 在类中通过x=y的形式添加的属性，位于对象自身中。
				2.原型对象
					- 对象中还有一些内容，会存储到其他的对象里(原型对象)
					-在对象中会有一个属性用来存储原型对象，这个属性叫做__proto__
					- 原型对象也负责为对象存储属性，
						当我们访问对象中的属性时，会优先访问对象自身的属性，
						对象自身不包含该属性时，才会去原型对象中寻找
					
					-会添加到原型对象中的情况:
						1.在类中通过xxx(){}方式添加的方法，位于原型中。
						2.主动向原型中添加的属性或方法。
			 */
			class Person {
				name = "孙悟空";
				age = 18; //这种通过赋值语句添加的属性会位于对象自身中。
				fn=()=>{} //这种也会添加到对象自身中。
				sayHello() {
					console.log("...", this.name);
				}
			}
			const p1 = new Person();
			console.log(p1);//打印p1是看不到sayHello的，它在原型中。
		</script>
	</head>
	<body>
	</body>
</html>